home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 22 / Amiga Format AFCD22 (Jan 1998, Issue 106).iso / -seriously_amiga- / shareware / workbench / -dopus- / empdopus / dopusarexx / assign.rexx next >
OS/2 REXX Batch file  |  1997-11-05  |  5KB  |  208 lines

  1. /*$VER: Assign.rexx 1.1 (18.10.97) B00ze
  2.  * For questions or comments email Booze@Videotron.CA
  3.  * Compressed by CrunchRexx v1.1
  4.  */
  5. PN='Assign.rexx'
  6. SH=0;WIN=0;LF='0A'x
  7. Options results
  8. Signal ON SYNTAX
  9. Signal ON BREAK_C
  10. Signal ON FAILURE
  11. Parse ARG P SH A .
  12. Address VALUE P
  13. A=Upper(A)
  14. Options failat 21
  15. If ~Show('L',"rexxreqtools.library") Then CALL AddLib('rexxreqtools.library',0,-30,0)
  16. If ~GSL() Then Call ReqERR('No Source Lister To Work With!')
  17. LP=GLP(SH)
  18. Call Pragma('D',LP)
  19. LP=Pragma('D')
  20. DL.=0
  21. 'Lister Query' SH 'Seldirs Stem DL.'
  22. If DL.count=0 Then NL.0=LP
  23. Else Do
  24. If Right(LP,1)~=':'&Right(LP,1)~='/' Then LP=LP'/'
  25. DL.count=DL.count-1
  26. Do x=0 to DL.count
  27. NL.x=LP||DL.x
  28. End
  29. End
  30. 'Lister Set' SH 'Busy 1'
  31. Do x=0 to DL.count
  32. If Show('L',"rexxreqtools.library") Then Do
  33. Typ=ReqSTR(':','Enter Name To Assign To:'LF||NL.x,'Ok|_Add|_Path|_Defer|_Remove|_Skip|_Cancel',A)
  34. Nam=Strip(RTStr)
  35. End
  36. Else Do
  37. If A="NW" Then RCMD='Dopus GetString'
  38. Else RCMD='Lister GetString 'SH
  39. RCMD' "Enter Name To Assign To:'LF||NL.x'" 32 ":" Ok|Cancel'
  40. If RESULT=""|RESULT="RESULT" Then Do
  41. Nam=":"
  42. Typ=1
  43. End
  44. Else Do
  45. Nam=Strip(RESULT)
  46. If A="NW" Then RCMD='Dopus Request'
  47. Else RCMD='Lister Request 'SH
  48. RCMD' "Assign Type?" Ok|Add|Path|Defer|Remove|Skip|Cancel'
  49. Typ=RC
  50. End
  51. End
  52. If Typ~=6 Then Do
  53. Select
  54. When Typ=1 Then Typ=""
  55. When Typ=2 Then Typ=" ADD"
  56. When Typ=3 Then Typ=" PATH"
  57. When Typ=4 Then Typ=" DEFER"
  58. When Typ=5 Then Typ=" REMOVE"
  59. When Typ=0 Then Do
  60. 'Lister Set' SH 'Busy 0'
  61. Exit 0
  62. End
  63. End
  64. Nam=Strip(Compress(Nam,'":/'))
  65. If Nam~="" Then Do
  66. If Length(Nam)>30 Then Nam=Left(Nam,30)
  67. Address COMMAND 'C:Assign >NIL: "'Nam':" "'NL.x'"'Typ
  68. If RC~=0 Then Call ReqEZ('+++ Assign Failed +++',' _OK ')
  69. End
  70. End
  71. If DL.count~=0 Then Do
  72. 'Lister Select' SH '"'DL.x'"' '0'
  73. 'Lister Refresh' SH
  74. End
  75. End
  76. 'Lister Set' SH 'Busy 0'
  77. Exit 0
  78. GSL: PROCEDURE EXPOSE P LF PN SH WIN
  79. If Datatype(SH)~="NUM" Then Call ReqERR('UnInitialized SH/SourceHandle!')
  80. If SH=0 Then Do
  81. Parse UPPER ARG STyp
  82. If STyp~="D"|STyp~="A" Then STyp="S"
  83. SL.=0
  84. 'Lister Query Source Stem SL.'
  85. If SL.count=0 Then If STyp="S" Then Return(0)
  86. Else Do
  87. 'Lister Query Dest Stem SL.'
  88. If SL.count=0 Then If STyp="D" Then Return(0)
  89. Else Do
  90. 'Lister Query ALL Stem SL.'
  91. If SL.count=0 Then Return(0)
  92. End
  93. End
  94. SH=SL.0
  95. End
  96. 'Lister Set' SH 'Source'
  97. 'Lister Query' SH 'Window'
  98. If RESULT~=0&Datatype(RESULT)='NUM' Then WIN=RESULT
  99. Else WIN=0
  100. Return(1)
  101. GLP: PROCEDURE EXPOSE P LF PN SH WIN
  102. Parse ARG LH
  103. 'Lister Query' LH 'PATH'
  104. If RESULT=""|RESULT="RESULT" Then Call ReqERR('Unable To Obtain Lister PATH!')
  105. Else Do
  106. LP=RESULT
  107. If Right(LP,1)~=':'&Right(LP,1)~='/' Then LP=LP'/'
  108. End
  109. Return(LP)
  110. ReqEZ: PROCEDURE EXPOSE P LF PN SH WIN
  111. Parse ARG TXT,GADGETS,A
  112. A=Upper(A)
  113. If ~Show('L',"rexxreqtools.library") Then CALL AddLib('rexxreqtools.library',0,-30,0)
  114. If ~Show('L',"rexxreqtools.library") Then Do
  115. GADGETS=Compress(GADGETS,'_')
  116. If SH=0|Datatype(SH)~="NUM"|A="NW" Then RCMD='Dopus Request'
  117. Else RCMD='Lister Request 'SH
  118. RCMD' "'TXT'" 'GADGETS
  119. Choice=RC
  120. End
  121. Else Do
  122. If WIN=0|Datatype(WIN)~="NUM"|A="NW" Then Do
  123. 'Dopus Screen'
  124. Parse VAR RESULT S .
  125. RTAG='RT_PubScrName='S' rt_reqpos=reqpos_centerscr'
  126. End
  127. Else RTAG='RT_Window='WIN' rt_reqpos=reqpos_centerwin'
  128. Choice=rtEZRequest(TXT,GADGETS,PN,RTAG' rtez_flags=ezreqf_centertext')
  129. End
  130. Return Choice
  131. ReqERR: PROCEDURE EXPOSE P LF PN SH WIN
  132. Parse ARG TXT,A
  133. A=Upper(A)
  134. 'Command Flash'
  135. If ~Show('L',"rexxreqtools.library") Then CALL AddLib('rexxreqtools.library',0,-30,0)
  136. If ~Show('L',"rexxreqtools.library") Then Do
  137. If SH=0|Datatype(SH)~="NUM"|A="NW" Then RCMD='Dopus Request'
  138. Else RCMD='Lister Request 'SH
  139. RCMD' "+++ 'PN' Error +++'LF||TXT'" OK'
  140. End
  141. Else Do
  142. If WIN=0|Datatype(WIN)~="NUM"|A="NW" Then Do
  143. 'Dopus Screen'
  144. Parse VAR RESULT S .
  145. RTAG='RT_PubScrName='S' rt_reqpos=reqpos_centerscr'
  146. End
  147. Else RTAG='RT_Window='WIN' rt_reqpos=reqpos_centerwin'
  148. CALL rtEZRequest('+++ 'PN' Error +++'LF||TXT,,PN,RTAG' rtez_flags=ezreqf_centertext rt_idcmpflags=idcmp_vanillakey')
  149. End
  150. If SH~=0 Then Do
  151. 'Lister Set' SH 'Busy 0'
  152. 'Lister Set' SH 'Title'
  153. 'Lister Refresh' SH 'FULL'
  154. End
  155. Exit 20
  156. ReqSTR: PROCEDURE EXPOSE P LF PN SH WIN RTStr
  157. Parse ARG DEF,TXT,GADGETS,A
  158. A=Upper(A)
  159. If ~Show('L',"rexxreqtools.library") Then CALL AddLib('rexxreqtools.library',0,-30,0)
  160. If ~Show('L',"rexxreqtools.library") Then CALL ReqERR('ReqSTR Does NOT work W/O RexxReqTools!')
  161. Else Do
  162. If WIN=0|Datatype(WIN)~="NUM"|A="NW" Then Do
  163. 'Dopus Screen'
  164. Parse VAR RESULT S .
  165. RTAG='RT_PubScrName='S' rt_reqpos=reqpos_centerscr'
  166. End
  167. Else RTAG='RT_Window='WIN' rt_reqpos=reqpos_centerwin'
  168. RTStr=rtGetString(DEF,TXT,PN,GADGETS,RTAG' rt_waitpointer=true rtgs_flags=gsreqf_centertext',RTGad)
  169. End
  170. Return RTGad
  171. BREAK_C:
  172. Address VALUE P
  173. If SH~=0 Then Do
  174. 'Lister Set' SH 'Busy 0'
  175. 'Lister Set' SH 'Title'
  176. 'Lister Refresh' SH 'FULL'
  177. RCMD='Lister Request 'SH
  178. End
  179. Else RCMD='Dopus Request'
  180. 'Command Flash'
  181. RCMD' "+++ Break! +++" OK'
  182. Exit 0
  183. SYNTAX:
  184. RCX=RC
  185. Address VALUE P
  186. If SH~=0 Then Do
  187. 'Lister Set' SH 'Busy 0'
  188. 'Lister Set' SH 'Title'
  189. 'Lister Refresh' SH 'FULL'
  190. RCMD='Lister Request 'SH
  191. End
  192. Else RCMD='Dopus Request'
  193. 'Command Flash'
  194. RCMD' "+++ Syntax Error +++'LF'('RCX') at line 'SIGL||LF||errortext(RCX)'" OK'
  195. Exit 20
  196. FAILURE:
  197. Address VALUE P
  198. If SH~=0 Then Do
  199. 'Lister Set' SH 'Busy 0'
  200. 'Lister Set' SH 'Title'
  201. 'Lister Refresh' SH 'FULL'
  202. RCMD='Lister Request 'SH
  203. End
  204. Else RCMD='Dopus Request'
  205. 'Command Flash'
  206. RCMD' "+++ Failure +++'LF'Something failed at line 'SIGL'" OK'
  207. Exit 20
  208.